Yazılımcıların bilmesi gereken temel Docker komutları
Docker komutları, container tabanlı geliştirme sürecinde en sık kullanılan araçların başında gelir. Özellikle image indirme, container çalıştırma, log inceleme ve temizlik işlemleri günlük kullanımın temel parçalarıdır.
Bu rehberde en önemli Docker komutlarını sade ve anlaşılır şekilde ele alacağız. Eğer Docker öğrenmeye yeni başladıysanız ya da sık kullandığınız komutları tek bir yerde toparlamak istiyorsanız, bu içerik sizin için iyi bir başlangıç olacaktır.
Docker Nedir?
Docker, uygulamaları bağımlılıklarıyla birlikte paketleyip farklı ortamlarda tutarlı şekilde çalıştırmayı kolaylaştıran bir container platformudur. Geliştirme, test ve dağıtım süreçlerinde aynı uygulamanın farklı makinelerde aynı davranışı göstermesini sağladığı için oldukça yaygın kullanılır.
Özellikle modern yazılım geliştirme süreçlerinde Docker; taşınabilirlik, hızlı kurulum, daha kolay dağıtım ve ekip içi standartlaşma gibi önemli avantajlar sunar.
Docker Temel Kavramları
Docker komutlarına geçmeden önce bazı temel kavramları bilmek gerekir. Bu kavramlar Docker’ın nasıl çalıştığını anlamayı kolaylaştırır.
Layer (Katman)
Docker image yapısı katmanlardan oluşur. Her katman dosya sistemi üzerinde ayrı bir değişiklik seti gibi düşünülebilir. Bu yapı image paylaşımını ve cache kullanımını daha verimli hale getirir.
Image (İmaj)
Image, container oluşturmak için kullanılan hazır pakettir. İçinde uygulama kodu, bağımlılıklar ve çalıştırma ortamı bulunabilir.
Container
Container, bir image’ın çalışan örneğidir. Uygulama aslında container içinde çalışır ve izole bir ortam sunar.
Registry
Registry, Docker image’larının saklandığı ve dağıtıldığı sistemdir.
Repository
Repository, genellikle aynı uygulamanın farklı sürümlerini veya etiketlerini içeren image koleksiyonudur.
Image İşlemleri İçin Docker Komutları
Docker kullanımında ilk adım çoğu zaman bir image bulmak, indirmek ve listelemektir. Bu yüzden image komutları günlük iş akışında çok sık kullanılır.
docker login
Docker registry üzerinde oturum açmak için kullanılır.
docker login
docker search
Belirli bir image veya anahtar kelimeyi aramak için kullanılır.
docker search redis
docker pull
Registry üzerinden image indirmek için kullanılır.
docker pull redis
docker images
Makinede bulunan image’ları listeler.
docker images
docker tag
Bir image’a yeni bir etiket vermek için kullanılır.
docker tag uygulama:latest kullaniciadi/uygulama:v1
docker push
Etiketlenmiş image’ı registry’ye göndermek için kullanılır.
docker push kullaniciadi/uygulama:v1
Container Çalıştırma Komutları
Image indirildikten sonra sıradaki adım container oluşturmaktır. Docker tarafında en çok kullanılan komutların büyük bölümü container yönetimiyle ilgilidir.
docker create
Bir image’dan container oluşturur ancak otomatik olarak çalıştırmaz.
docker create redis
docker run
Container oluşturur ve aynı anda çalıştırır.
docker run redis
docker run -d
Container’ı arka planda çalıştırır.
docker run -d redis
docker run --rm
Container kapandığında otomatik silinmesini sağlar.
docker run --rm alpine echo "Merhaba Docker"
docker start
Daha önce oluşturulmuş bir container’ı başlatır.
docker start container_adi
docker stop
Çalışan bir container’ı düzgün şekilde durdurur.
docker stop container_adi
docker exec -it
Çalışan bir container içine girip komut çalıştırmayı sağlar.
docker exec -it container_adi sh
docker pause
Container içindeki süreçleri geçici olarak duraklatır.
docker pause container_adi
docker unpause
Duraklatılmış container’ı yeniden devam ettirir.
docker unpause container_adi
Yardımcı Docker Komutları
Docker kullanırken yalnızca container başlatmak yetmez. Çalışan süreçleri görmek, log incelemek ve teknik detayları kontrol etmek için yardımcı komutlara ihtiyaç duyulur.
docker ps
Çalışan container’ları listeler.
docker ps
docker ps -a
Tüm container’ları listeler.
docker ps -a
docker logs
Container loglarını görüntüler.
docker logs container_adi
docker inspect
Container veya image hakkında detaylı teknik bilgi gösterir.
docker inspect container_adi
docker history
Bir image’ın katman geçmişini gösterir.
docker history redis
docker version
Kurulu Docker sürümünü gösterir.
docker version
Docker Temizlik Komutları
Zamanla kullanılmayan container ve image’lar disk alanı tüketir. Bu nedenle düzenli temizlik yapmak önemlidir.
docker rm
Durdurulmuş container’ı siler.
docker rm container_adi
docker rmi
Bir image’ı siler.
docker rmi redis
docker kill
Çalışan container’ı zorla sonlandırır.
docker kill container_adi
docker container prune
Kullanılmayan durmuş container’ları temizler.
docker container prune
docker image prune
Kullanılmayan image’ları temizler.
docker image prune
docker system prune
Kullanılmayan birçok Docker kaynağını tek seferde temizler.
docker system prune
Pratik Kullanım Örnekleri
Docker komutlarını tek tek ezberlemek yerine küçük senaryolarla öğrenmek daha kalıcı olur. Aşağıda günlük kullanımda sık karşılaşılan birkaç örnek yer alıyor.
Redis Image İndirme
docker pull redis
İmajları Listeleme
docker images
Redis Container Çalıştırma
docker run -d --name redis-server redis
Çalışan Container’ları Görüntüleme
docker ps
Container İçine Girme
docker exec -it redis-server sh
Container Geçmişi ve Detayları İnceleme
docker history redis
docker inspect redis-server
Docker Kullanırken Dikkat Edilmesi Gerekenler
- Image boyutunu mümkün olduğunca küçük tutmaya çalışın.
- Gereksiz bağımlılıkları image içine eklemeyin.
- Container isimlerini anlamlı vermek yönetimi kolaylaştırır.
- Log ve inspect komutlarını hata ayıklama sürecinde aktif kullanın.
- Silme ve prune komutlarını dikkatli çalıştırın.
Sık Sorulan Sorular
Docker image ile container arasındaki fark nedir?
Image hazır pakettir, container ise bu paketin çalışan halidir.
docker run ile docker create arasındaki fark nedir?
docker create yalnızca container oluşturur. docker run ise oluşturur ve aynı anda başlatır.
docker ps ne işe yarar?
Çalışan container’ları listeler. Tüm container’ları görmek için docker ps -a kullanılır.
docker exec -it neden kullanılır?
Çalışan bir container içine girip komut çalıştırmak için kullanılır.
Sonuç
Bu yazıda en çok kullanılan Docker komutlarını temel kavramlarla birlikte inceledik. Docker öğrenirken önce image ve container mantığını kavramak, ardından günlük kullanımda gerekli olan komutlara hakim olmak büyük kolaylık sağlar.
Özellikle docker pull, docker run, docker ps, docker exec, docker logs ve temizlik komutları en sık ihtiyaç duyacağınız komutlar arasında yer alır.